#include <iostream>
#include <fstream>
#include <stdlib.h>
#include <cstring>
#include <sstream>
#include <gtk/gtk.h>
#include"intestazioni_giornate.h"
#include"Intestazioni_giocatore.h"

void aggiona_1_label(char stringa[],char label[]);
void crea_giornata(giornate *p);
void crea_giornata_partite(partite *p);
void crea_giocatore(giocatore *p);
void aggiungi_ins_pres_giornate(pres_allenamento *p,int num_occ);

void aggiorna_label();   
void aggiorna_label_parite();
void aggiorna_schermata(cairo_t  * cr);
void aggiorna_schermata_partite(cairo_t  * cr);
void aggiorna_schermata1(cairo_t  * cr );
void aggiorna_schermata2(cairo_t  * cr);
void stampa_informazioni(cairo_t  * cr); 
void aggiorna_schermata_label();
void crea_lista_classifica();
void aggiorna_num_allenamenti(int num_giocatore);
void stampa_punt_max(cairo_t  * cr);
void funzione_di_stampa(int numero,int x,int y,cairo_t  * cr,float r,float g,float b);
void salva_nel_file();
void funzione_di_stampa_float(float numero,int x,int y,cairo_t  * cr,float r,float g,float b);
void calcola_punteggi_partite();

void stampa_classifica_pres_partite(cairo_t  * cr);
void stampa_classifica_marcatori(cairo_t  *cr);
void stampa_classifica_voti(cairo_t  *cr);
void stampa_classifica_migliore_giocatore(cairo_t  *cr);

using namespace std ;

extern GtkBuilder *builder;
extern giornate *puntatore1;
extern giocatore *puntatore2;
partite *puntatore3=0;

extern giornate *punta_att;
extern giocatore *punta_gioc_att;
partite *punta_att_partite;

void aggiorna_label();

int stampa=0;


pres_allenamento *punt_pres_allenam;

 int num_corr_inizio,incrementa;
 int mesi_max[]={31,28,31,30,31,30,31,31,30,31,30,31};

char numeri_rosso[][20]={"zero.png","uno.png","due.png","tre.png","quattro.png","cinque.png","sei.png","sette.png","otto.png","nove.png"};

int inf_var;
int num_ruolo=0, anno_attuale=0,gio_car_settimana;


char nomi_squadre[][30]={"UsCarpine","AcetaiaRinaldi","PizzeriaIlCaminetto","RavarinoFive","Varrios","BrancoSanfra","MondialGoldbetCorreggio","MondialCarpiCostruzioni","AnserFcHavana","MilehouseCaffè","AttilaUngheniFulgens","ChanelaCafféSorbara","TigerUnited","ScPossidiese","-"};
int lunghezz_nomi_sq[]={115,164,223,148,88,152,290,278,176,177,245,240,134,145,7};
int lunghezza_mese[]={92,100,70,66,83,78,69,78,120,89,115,108};
int lunghezza_gio_settimana[]={75,87,110,85,87,80,110};

float colori_per_locandina[]={0,0.0,0.99,0.512,0.512,0.512,0.99,0.0,0.0,0.0,0.0,0.0,0.99,0.660,0.0,0.99,0.99,0.0,0.0,0.508,0.99,0.600,0.300,0.0,0.99,0.768,0.812,0.99,0.860,0.0,0.768,0.768,0.768,0.0,0.99,0.0,0.572,0.0,0.99};
float r,g,b;
int colore_chiaro_scuro[]={1,1,1,0,0,0,1,1,0,0,0,0,1};

// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//                                                                                       Inizio Programma
// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


extern "C" gboolean chiudi_programma(GtkWidget *widget,GdkEvent  *event, gpointer   user_data)  
{
  gtk_main_quit() ;
}

extern "C" void chiudi_ins_giocatore( GtkButton *button,gpointer data )
{
    GtkWidget *ins_dialog =GTK_WIDGET(gtk_builder_get_object(builder,"window2") );
    gtk_widget_hide(ins_dialog);
}

extern "C" void chiudi_calendario( GtkButton *button,gpointer data ) 
{
    GtkWidget *ins_dialog =GTK_WIDGET(gtk_builder_get_object(builder,"window4") );
    gtk_widget_hide(ins_dialog);
}

extern "C" void chiudi_ins_presenze_giocatore( GtkButton *button,gpointer data )  
{
    GtkWidget *ins_dialog =GTK_WIDGET(gtk_builder_get_object(builder,"window3") );
    gtk_widget_hide(ins_dialog);
}

extern "C" void classifica_punteggio( GtkButton *button,gpointer data )
{
         aggiorna_num_allenamenti(0);
        crea_lista_classifica();
}


// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//                                                                                       inserimento giornate
// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

extern int day_attuale, month_attuale=0,giorni_mesi=0; 
int numero_corrente,stato_iniziale=0,condizione_anno=1; 
char giorni_car[][20]={"Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato","Domenica"};

extern "C" void giorni( GtkButton *button,gpointer data )
{
   
   char mesi_giorni[][30]={"figure/giorno_bianco.png","figure/giorno_rosso.png","figure/mese_bianco.png","figure/mese_rosso.png"};

      giorni_mesi=0;

  GtkWidget *immagine=gtk_image_new_from_file (mesi_giorni[1]);
  GtkButton *bottone =GTK_BUTTON(gtk_builder_get_object(builder,"button26"));
  gtk_button_set_image (bottone,immagine);      

  immagine=gtk_image_new_from_file (mesi_giorni[2]);
  bottone =GTK_BUTTON(gtk_builder_get_object(builder,"button27"));
  gtk_button_set_image (bottone,immagine);    

}

extern "C" void mesi( GtkButton *button,gpointer data )
{
   char mesi_giorni[][30]={"figure/giorno_bianco.png","figure/giorno_rosso.png","figure/mese_bianco.png","figure/mese_rosso.png"};

      giorni_mesi=1;

  GtkWidget *immagine=gtk_image_new_from_file (mesi_giorni[0]);
  GtkButton *bottone =GTK_BUTTON(gtk_builder_get_object(builder,"button26"));
  gtk_button_set_image (bottone,immagine);      

  immagine=gtk_image_new_from_file (mesi_giorni[3]);
  bottone =GTK_BUTTON(gtk_builder_get_object(builder,"button27"));
  gtk_button_set_image (bottone,immagine); 
        
}

extern "C" void bottone_a_destra( GtkButton *button,gpointer data )
{
     if(giorni_mesi==0)  
            {
             if(day_attuale<mesi_max[month_attuale])
              {   day_attuale++;    
              if(gio_car_settimana<6)
                  {gio_car_settimana=gio_car_settimana+1; 
                  cout<<endl<<"num giorno settimana "<<gio_car_settimana<<endl;  }
              else
                 {gio_car_settimana=0;       
                  cout<<endl<<"num giorno settimana "<<gio_car_settimana<<endl;}   } 
             }
      else
         {
          for(int mt=0;mt<mesi_max[month_attuale];mt++) 
               { if(gio_car_settimana<6)
                  {gio_car_settimana=gio_car_settimana+1; 
                  cout<<endl<<"num giorno settimana "<<gio_car_settimana<<endl;  }
              else
                 {gio_car_settimana=0;       
                  cout<<endl<<"num giorno settimana "<<gio_car_settimana<<endl;}}
         
          stato_iniziale=1;
          if(month_attuale==11)
              {month_attuale=0;
              anno_attuale++;}
          else
              month_attuale++; 
              
           incrementa=1;
           condizione_anno=1;
           numero_corrente++;
         }

    
       GtkWidget *finestra=GTK_WIDGET(gtk_builder_get_object(builder,"drawingarea31") );
  gtk_widget_queue_draw (finestra);

}

extern "C" void bottone_a_sinistra( GtkButton *button,gpointer data )
{
        if(giorni_mesi==0)  
           {
             if(day_attuale>1)
               {  day_attuale--;
               if(gio_car_settimana>0)
                  {gio_car_settimana=gio_car_settimana-1; 
                   cout<<endl<<"num giorno settimana "<<gio_car_settimana<<endl;  }
              else
                 {gio_car_settimana=6;                
                  cout<<endl<<"num giorno settimana "<<gio_car_settimana<<endl;}  }    
                              
            }
        else
              { 

                stato_iniziale=1;
                if(month_attuale==0)
                     {month_attuale=11;
                      anno_attuale--;}
                else
                     month_attuale--;
                   
             for(int mt=0;mt<mesi_max[month_attuale];mt++) 
               { if(gio_car_settimana>0)
                  {gio_car_settimana=gio_car_settimana-1; 
                  cout<<endl<<"num giorno settimana "<<gio_car_settimana<<endl;  }
              else
                 {gio_car_settimana=6;       
                  cout<<endl<<"num giorno settimana "<<gio_car_settimana<<endl;}}     
                     

                incrementa=0;
                condizione_anno=0;
                num_corr_inizio--;
               }
 
        GtkWidget *finestra=GTK_WIDGET(gtk_builder_get_object(builder,"drawingarea31") );
        gtk_widget_queue_draw (finestra);
}

extern "C" void bottone_in_basso( GtkButton *button,gpointer data )
{
     if(giorni_mesi)      
        return;

     if(day_attuale<30&&day_attuale+7<mesi_max[month_attuale]+1&&giorni_mesi==0)  
        day_attuale+=7;

        
       GtkWidget *finestra=GTK_WIDGET(gtk_builder_get_object(builder,"drawingarea31") );
  gtk_widget_queue_draw (finestra);

}

extern "C" void bottone_in_alto( GtkButton *button,gpointer data )
{
       if(giorni_mesi)      
          return;      

       if(day_attuale>1&&day_attuale-7>0&&giorni_mesi==0)  
           day_attuale-=7;
 
        GtkWidget *finestra=GTK_WIDGET(gtk_builder_get_object(builder,"drawingarea31") );
        gtk_widget_queue_draw (finestra);
}

extern "C" void apri_inserimento_giornate( GtkButton *button,gpointer data )
{
    GtkWidget *ins_dialog =GTK_WIDGET(gtk_builder_get_object(builder,"window4") );
    gtk_widget_show_all(ins_dialog);
    
       time_t rawtime;
     struct tm * timeptr;

    time ( &rawtime );
    timeptr = localtime ( &rawtime );  
    
  char mesi_giorni[][30]={"figure/giorno_bianco.png","figure/giorno_rosso.png","figure/mese_bianco.png","figure/mese_rosso.png"};

  GtkWidget *immagine=gtk_image_new_from_file (mesi_giorni[1]);
  GtkButton *bottone =GTK_BUTTON(gtk_builder_get_object(builder,"button26"));
  gtk_button_set_image (bottone,immagine);      

  immagine=gtk_image_new_from_file (mesi_giorni[2]);
  bottone =GTK_BUTTON(gtk_builder_get_object(builder,"button27"));
  gtk_button_set_image (bottone,immagine);  
    inf_var=1;
    stato_iniziale=0;
    
  for(int g=0;g<7;g++)
       {if(strcmp(giorni_car[timeptr->tm_wday],giorni_car[g])==0)
           {gio_car_settimana=g-1;
            day_attuale=timeptr->tm_mday;

            break;}
       }  
    
        stampa=4;
  GtkWidget *finestra=GTK_WIDGET(gtk_builder_get_object(builder,"drawingarea36") );
  gtk_widget_queue_draw (finestra); 
}


//-------------------------------------------------------------------------------------------------------------------
//                                                CALENDARIO
//-------------------------------------------------------------------------------------------------------------------
extern "C" gboolean disegna_bordi(GtkWidget  * widget,  cairo_t  * cr ,  gpointer dati )
{
  cairo_set_source_rgb (cr, 0.99,0, 0);
  cairo_paint ( cr); 
}

extern "C" gboolean disegna_bottone_giallo(GtkWidget  * widget,  cairo_t  * cr ,  gpointer dati )
{
         cairo_set_source_rgb (cr, 0.99,0.99, 0.0);
        cairo_new_sub_path(cr);
        cairo_arc(cr,14,14,12,0,90);
        cairo_fill(cr);
}

extern "C" gboolean disegna_bottone_blu(GtkWidget  * widget,  cairo_t  * cr ,  gpointer dati )
{
        cairo_set_source_rgb (cr, 0.0,0.0, 0.99);
        cairo_new_sub_path(cr);
        cairo_arc(cr,14,14,12,0,90);
        cairo_fill(cr);
}


extern "C" void inserisci_giornate( GtkButton *button,gpointer data )
{
   char mesi[][20]={"Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre"};
   giornate *q=puntatore1;
   giornate *prec;

       while(q!=0)
               { 
                 if(q->giorno==day_attuale&&strcmp(q->mese_parola,mesi[month_attuale])==0&&q->anno==anno_attuale)
                     return;

                 prec=q;
                 q=q->pross;                     
               }

   giornate *p=new giornate();

   p->giorno=day_attuale;
   strcpy(p->mese_parola,mesi[month_attuale]);
   strcpy(p->giono_settimana,giorni_car[gio_car_settimana]);

    p->anno=anno_attuale;

   for(int i=0;i<18;i++)
          p->bottoni_selezioni[i]=0;

    crea_giornata(p);
    
    salva_nel_file();
    
    stampa=4;
  GtkWidget *finestra=GTK_WIDGET(gtk_builder_get_object(builder,"drawingarea36") );
  gtk_widget_queue_draw (finestra); 

  finestra=GTK_WIDGET(gtk_builder_get_object(builder,"drawingarea31") );
  gtk_widget_queue_draw (finestra);
}

extern "C" void inserisci_giornate_partite( GtkButton *button,gpointer data )
{
   char mesi[][20]={"Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre"};
   partite *q=puntatore3;
   partite *prec;

       while(q!=0)
               { 
                 if(q->giorno==day_attuale&&strcmp(q->mese_parola,mesi[month_attuale])==0&&q->anno==anno_attuale)
                     return;

                 prec=q;
                 q=q->pross;                     
               }

   partite *p=new partite();

   p->giorno=day_attuale;
   strcpy(p->mese_parola,mesi[month_attuale]);
   strcpy(p->giono_settimana,giorni_car[gio_car_settimana]);

    p->anno=anno_attuale;

   strcpy(p->squadra,"Vuoto");
   strcpy(p->palestra,"Vuoto");
   
   p->risultato[0]=0;
   p->risultato[1]=0;
   
   for(int i=0;i<15;i++)
       {  
          p->pres_partite[i]=0;
          p->gol_partite[i]=0;
          p->voti_partite[i]=0.00;
       }

    crea_giornata_partite(p);
    
    salva_nel_file();
    
  stampa=5;
  GtkWidget *finestra=GTK_WIDGET(gtk_builder_get_object(builder,"drawingarea36") );
  gtk_widget_queue_draw (finestra); 

  finestra=GTK_WIDGET(gtk_builder_get_object(builder,"drawingarea31") );
  gtk_widget_queue_draw (finestra);
}

extern "C" void cancella_giornate( GtkButton *button,gpointer data )
{
     char mesi[][20]={"Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre"};

    
     giornate *p=puntatore1;
     giornate *prec;
     int salto=0;
 
     if(puntatore1==0)
         salto=1;
     else
        {if(puntatore3==0)
             return;
        } 
        
     partite *q=puntatore3;
    partite *q_prec;

        while(q!=0)
               { 
                 if(q->giorno==day_attuale&&strcmp(q->mese_parola,mesi[month_attuale])==0&&q->anno==anno_attuale)
                    {salto=1;
                      break;}

                 q_prec=q;
                 q=q->pross;                     
               }
   
   if(salto==0){
     while(p!=0)
               { 
                 if(p->giorno==day_attuale&&strcmp(p->mese_parola,mesi[month_attuale])==0&&p->anno==anno_attuale)
                     break;

                 prec=p;
                 p=p->pross;                     
               }
     
     if(p==0)
        return;
        
     if(p==puntatore1)
        {
          puntatore1=p->pross;
          if(p->pross!=0)
             p->pross->precc=0;
        }
     else
         {
          prec->pross=p->pross;
          if(p->pross!=0)
             p->pross->precc=prec;
         }

     delete p;
     }
     else  
     {
     
     if(q==puntatore3)
        {
          puntatore3=q->pross;
          if(q->pross!=0)
             q->pross->precc=0;
        }
     else
         {
          q_prec->pross=q->pross;
          if(q->pross!=0)
             q->pross->precc=q_prec;
         }

       delete q; 
   }
   
   
   salva_nel_file();
   calcola_punteggi_partite();
   
  GtkWidget *finestra=GTK_WIDGET(gtk_builder_get_object(builder,"drawingarea31") );
  gtk_widget_queue_draw (finestra);
  finestra=GTK_WIDGET(gtk_builder_get_object(builder,"drawingarea36") );
  gtk_widget_queue_draw (finestra);
}


int funzione1(int cont)
{
        float flo;
        flo=cont;
        flo=flo/10;
        int decine=flo;
    return decine;
} 

int contatore=0,numero_ugualianza=0,unita=1;


int unita_decine(cairo_t  *cr,int x,int y,int cont,int colore)
{
       cairo_text_extents_t te;
       cairo_select_font_face(cr,"Arial",CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_BOLD);
       cairo_set_font_size(cr,25);
       cairo_text_extents(cr,"a",&te);
       
      if(cont/10>0)
         x=x-7;

  if(colore)
     funzione_di_stampa(cont,x,y,cr,0.99,0.0,0.0);
  else
     funzione_di_stampa(cont,x,y,cr,0.99,0.99,0.99);

}

int quale_colore(int cont)
{
 giornate *q=puntatore1;
 char mesi[][20]={"Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre"};

  while(q!=0)
           {if(strcmp(q->mese_parola,mesi[month_attuale])==0&&q->giorno==cont)
                {return 1;
                  break;}
            q=q->pross;}

  return 0;
}

void disegna_numero_corrente(cairo_t  *cr,int x,int y,int cont)
{
    char pallini[][20]={"pallino_rosso.png","pallino_giallo.png"}; 
    char mon_name[][15] = {"Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno","Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre" };

     time_t rawtime;
     struct tm * timeptr;
     
     partite *p=puntatore3;

    time ( &rawtime );
    timeptr = localtime ( &rawtime );

    int pallino=quale_colore(cont);
    
    int offx=7,offd=9;
    
    if(cont==timeptr->tm_mday&&strcmp(mon_name[month_attuale],mon_name[timeptr->tm_mon])==0&&anno_attuale==(1900+timeptr->tm_year))
       {
        cairo_set_source_rgb (cr, 0.99,0.0, 0.0);
        cairo_new_sub_path(cr);
        cairo_arc(cr,x+offx,y-offd,23,0,90);
        cairo_fill(cr);
        cairo_set_source_rgb (cr, 0.99,0.99, 0.99);
        cairo_new_sub_path(cr);
        cairo_arc(cr,x+offx,y-offd,21,0,90);
        cairo_fill(cr);
       } 
       
       while(p!=0)
                 {
                   if(cont==p->giorno&&strcmp(p->mese_parola,mon_name[month_attuale])==0&&anno_attuale==p->anno)
                      {    
                           if(cont== day_attuale)
                              { cairo_set_source_rgb (cr, 0.99,0.0, 0.00);
                                cairo_new_sub_path(cr);
                                cairo_arc(cr,x+offx,y-offd,24,0,90);
                                cairo_fill(cr);  
                              }
                            cairo_set_source_rgb (cr, 0.0,0.0, 0.99);
                           cairo_new_sub_path(cr);
                           cairo_arc(cr,x+offx,y-offd,21,0,90);
                           cairo_fill(cr);
                 
                        
                        unita_decine(cr,x,y,cont,0) ; 
                        return;
                      }   
                    p=p->pross;  
                  }       
      
  
     if(cont== day_attuale||pallino==1){
        if(pallino)
            {if(cont==day_attuale)
               {cairo_set_source_rgb (cr, 0.99,0.0, 0.0);
                cairo_new_sub_path(cr);
                cairo_arc(cr,x+offx,y-offd,25,0,90);
                cairo_fill(cr);
                }   
             cairo_set_source_rgb (cr, 0.99,0.99, 0.0);
             cairo_new_sub_path(cr);
             cairo_arc(cr,x+offx,y-offd,22,0,90);
             cairo_fill(cr);

             unita_decine(cr,x,y,cont,0) ;}
        else
           {cairo_set_source_rgb (cr, 0.99,0.0, 0.0);
            cairo_new_sub_path(cr);
            cairo_arc(cr,x+offx,y-offd,22,0,90);
            cairo_fill(cr);
            unita_decine(cr,x,y,cont,0) ;
       }}
    else
     { unita_decine(cr,x,y,cont,1) ; }

}

int contatore2=0, condizione=1;

int data_unita(int divisore,int data)
{
    float data2=data;
     data2=data2/divisore;
     int variabile=data2;
     data2=data2-variabile;

     data2=data2*10;
     variabile=data2;

     return variabile;
}


extern "C" gboolean disegna_calendario(GtkWidget  * widget,  cairo_t  * cr ,  gpointer dati )
{
  char mesi[][20]={"Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre"};
  
   char giorni_settimana[][20]={"L","M","M","G","V","S","D"};

   int x=25,y=25;

     time_t rawtime;
     struct tm * timeptr;

    time ( &rawtime );
    timeptr = localtime ( &rawtime );

     int i,j,k,s,cont=0;
     


if(stato_iniziale==0)
{  for(i=0;i<12;i++)
        {if(strcmp(mesi[i],mesi[timeptr->tm_mon])==0)
              break;
         }
         
              
  month_attuale=i;
  anno_attuale=1900+timeptr->tm_year;
}
    
  cairo_set_source_rgb (cr, 0.999,0.999, 0.999);
  cairo_paint ( cr); 

       cairo_text_extents_t te;
       cairo_set_source_rgb (cr, 0.99,0.0, 0.0);
       cairo_select_font_face(cr,"Georgia",CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_BOLD);
       cairo_set_font_size(cr,30);
       cairo_text_extents(cr,"a",&te);
       
      cairo_move_to(cr,x,45);
      cairo_show_text(cr,mesi[month_attuale]);
      x=x+300;
      y=y+20;
      
      funzione_di_stampa(anno_attuale,x,y,cr,0.99,0.0,0.0);

     x=20;
     y=y+60;

              for(int k=0;k<7;k++)
                  {
                     cairo_move_to(cr,x,y);
                     cairo_show_text(cr,giorni_settimana[k]);
                  
                         x=x+60;                
                   }
                   
      
                
if(stato_iniziale==0)
{
  for(i=0;i<12;i++)
        {if(strcmp(giorni_car[i],giorni_car[timeptr->tm_wday])==0)
              break;
         }
             
               
   k=timeptr->tm_mday-i+1;
   k-=7;
   while(k!=1&&k-7>-7)
               k-=7;

   for(i=k;i<1;i++)
          {
            cont++;
          }
    num_corr_inizio=cont;
}
else
{
 if(giorni_mesi)
 {
   if(incrementa)
      { for(i=0;i<numero_corrente;i++)
          {
            cont++;
          }
      num_corr_inizio=cont; 
      }
   else
       {
         int k=mesi_max[month_attuale]-num_corr_inizio;
         k-=7;
          while(k!=1&&k-7>-7)
                      k-=7;

         for(i=k;i<1;i++)
              {
                cont++;
              }
        num_corr_inizio=cont; 
       }
   }
}

    x=60*num_corr_inizio+25;
    s=7-num_corr_inizio;       
    cont=1;

    y=y+50;

   for(int j=0;j<6;j++)
           { 
              for(k=0;k<s;k++)
                  {
                       disegna_numero_corrente(cr,x,y,cont);  

                      
                     cont++;
                    
                         if(cont>mesi_max[month_attuale])
                        {numero_corrente=k;
                          break;}

                     if(k<6)
                         x=x+60;                
                   }
                        if(cont>mesi_max[month_attuale])
                        {numero_corrente=k;
                         
                          break;}
      
                  y=y+60;  
                 x=25;
                s=7;
           }
     
   }

// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//                                                                                       inserimento giocatore
// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

int interruttore=0;
int  ins_giocatore_sq_palestra=0;

extern "C" gboolean disegna_nome(GtkWidget  * widget,  cairo_t  * cr ,  gpointer dati )
{
  cairo_set_source_rgb (cr, 0.999,0.999, 0.999);
  cairo_paint ( cr); 

       cairo_text_extents_t te;
       cairo_set_source_rgb (cr, 0.0,0.0, 0.0);
       cairo_select_font_face(cr,"Arial",CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_BOLD);
       cairo_set_font_size(cr,30);
       cairo_text_extents(cr,"a",&te);
       cairo_move_to(cr,6,30);
       
       if(ins_giocatore_sq_palestra==0)
          cairo_show_text(cr,"Nome");
       else
          cairo_show_text(cr,"Squadra");
}

extern "C" gboolean disegna_cognome(GtkWidget  * widget,  cairo_t  * cr ,  gpointer dati )
{

  cairo_set_source_rgb (cr, 0.999,0.999, 0.999);
  cairo_paint ( cr); 

       cairo_text_extents_t te;
       cairo_set_source_rgb (cr, 0.0,0.0, 0.0);
       cairo_select_font_face(cr,"Arial",CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_BOLD);
       cairo_set_font_size(cr,30);
       cairo_text_extents(cr,"a",&te);
       cairo_move_to(cr,6,30);
       
       if(ins_giocatore_sq_palestra==0)
           cairo_show_text(cr,"Cognome");
       else
           cairo_show_text(cr,"Palestra");    
}

extern "C" gboolean disegna_rosa(GtkWidget  * widget,  cairo_t  * cr ,  gpointer dati )
{
       cairo_text_extents_t te;
       cairo_set_source_rgb (cr, 0.99,0.420, 0.720);
       cairo_select_font_face(cr,"Arial",CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_BOLD);
       cairo_set_font_size(cr,30);
       cairo_text_extents(cr,"a",&te);
       cairo_move_to(cr,6,30);
       cairo_show_text(cr,"Rosa");
}

extern "C" void stato_switch( GtkButton *button,gpointer data )
{
    if(interruttore)
        interruttore=0;
    else
        interruttore=1;
                 
    GtkWidget *finestra=GTK_WIDGET(gtk_builder_get_object(builder,"drawingarea50") );
    gtk_widget_queue_draw (finestra);                
}

char stringa_switch[][30]={"figure/switch_off.png","figure/switch_on.png"};

extern "C" gboolean disegna_switch(GtkWidget  * widget,  cairo_t  * cr ,  gpointer dati )
{
      cairo_surface_t *image;
      
      image=cairo_image_surface_create_from_png (stringa_switch[interruttore]);
      cairo_set_source_surface (cr,image ,100,6);
      cairo_paint ( cr);                           
}


extern "C" gboolean disegna_ruolo(GtkWidget  * widget,  cairo_t  * cr ,  gpointer dati )
{
      char ruolo[][20]={"Portiere","Difensore","Attacante","Allenatore"};
      
        cairo_text_extents_t te;
       cairo_set_source_rgb (cr, 0.0,0.0, 0.0);
       cairo_select_font_face(cr,"Arial",CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_BOLD);
       cairo_set_font_size(cr,30);
       cairo_text_extents(cr,"a",&te);
       
     if(ins_giocatore_sq_palestra==0){   
       cairo_move_to(cr,70,30);
       
       if(num_ruolo==0)
          {cairo_set_source_rgb (cr, 0.99,0.99, 0.0);
           cairo_show_text(cr,ruolo[num_ruolo]);}
           
          if(num_ruolo==1)
          {cairo_set_source_rgb (cr, 0.0,0.99,0.0);
           cairo_show_text(cr,ruolo[num_ruolo]);}
           
          if(num_ruolo==2)
          {cairo_set_source_rgb (cr, 0.99,0.0, 0.0);
           cairo_show_text(cr,ruolo[num_ruolo]);}        
           
              if(num_ruolo==3)
          {cairo_set_source_rgb (cr, 0.0,0.0, 0.99);
           cairo_show_text(cr,ruolo[num_ruolo]);}
        }   
        else   
           {int x=6,y=30;
             cairo_set_font_size(cr,20);
             cairo_set_source_rgb (cr, 0.99,0.99, 0.0);
             funzione_di_stampa(punta_att_partite->giorno,x,y,cr,0.0,0.0,0.0);
             x=x+50;
             cairo_set_source_rgb (cr, 0.0,0.0, 0.0);
             cairo_move_to(cr,x,y);
             cairo_show_text(cr,punta_att_partite->mese_parola);
             x=x+100;
             cairo_set_source_rgb (cr, 0.99,0.99, 0.0);
             funzione_di_stampa(punta_att_partite->anno,x,y,cr,0.0,0.0,0.0);
           
           }  

}


extern "C" void apri_inserimento_giocatori( GtkButton *button,gpointer data )
{
    GtkWidget *ins_dialog =GTK_WIDGET(gtk_builder_get_object(builder,"window2") );
    gtk_widget_show_all(ins_dialog);
    
    ins_giocatore_sq_palestra=0;
    inf_var=2;
}

extern "C" void scorri_destra_ruolo(GtkButton *button,gpointer data )
{
   if(ins_giocatore_sq_palestra==0){
    if(num_ruolo<3)
       num_ruolo+=1;
   }
   else
      {
       if(punta_att_partite->pross!=0)
           punta_att_partite=punta_att_partite->pross;
   
       }    

    GtkWidget *finestra=GTK_WIDGET(gtk_builder_get_object(builder,"drawingarea30") );
    gtk_widget_queue_draw (finestra); 
}

extern "C" void scorri_sinistra_ruolo( GtkButton *button,gpointer data )
{

   if(ins_giocatore_sq_palestra==0){
    if(num_ruolo>0)
       num_ruolo-=1;
    }
     else
      {
       if(punta_att_partite->precc!=0)
           punta_att_partite=punta_att_partite->precc;
       }      

    GtkWidget *finestra=GTK_WIDGET(gtk_builder_get_object(builder,"drawingarea30") );
    gtk_widget_queue_draw (finestra); 
  
}

// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//                                                                                       inserimento palestra squadra avversaria
// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

extern "C" void apri_inserimento_squadra_aversaria( GtkButton *button,gpointer data )
{
     if(puntatore3==0)
         return;
   
    GtkWidget *ins_dialog =GTK_WIDGET(gtk_builder_get_object(builder,"window2") );
    gtk_widget_show_all(ins_dialog);
    
    ins_giocatore_sq_palestra=1;
    inf_var=2;
}

// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//                                                                                            INSERIMENTO PRESENZE ALLENAMENTI
// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

char nome_botton[][15]={"button36","button37","button38","button39","button40","button41","button42","button43","button44","button45","button46","button6","button7","button8","button9","button10","button11","button12"};
char togle_botton[][50]={"figure/cerchietto_di_selezione.png","figure/bottone_di_selezione.png","figure/bottone di selezione_blu.png"};
int partite_allenamenti=0;

extern "C" gboolean bordi_pres_allenamenti(GtkWidget  * widget,  cairo_t  * cr ,  gpointer dati )
{

 if(partite_allenamenti==0)
    {cairo_set_source_rgb (cr, 0,0.99, 0);
    cairo_paint ( cr); 
    }
  else
   {cairo_set_source_rgb (cr, 0,0, 0.99);
    cairo_paint ( cr); 
    }
}

void reverse(char *s)
{
   int c, i, j;

   for (i = 0, j = strlen(s) - 1; i < j; i++, j--) {
      c = s[i];
      s[i] = s[j];
      s[j] = c;
   }
}

char *itoa(int n, char *s)
{
   int i, sign;

   if ((sign = n) < 0)   
      n = -n;  
   i = 0;
   do {   
      s[i++] = n % 10 + '0';   
   } while ((n /= 10) > 0);  
   if (sign < 0)
      s[i++] = '-';
   reverse(s);
   //s[i] = '\\0';
   return s;
}


extern "C" gboolean disegna_lista_nomi(GtkWidget  * widget,  cairo_t  * cr ,  gpointer dati )
{
     cairo_set_source_rgb (cr, 0.999,0.999, 0.999);
     cairo_paint ( cr); 
     
    giocatore *p=puntatore2;
     
   cairo_text_extents_t te;
   cairo_set_source_rgb (cr, 0.0,0.0, 0.0);
   cairo_select_font_face(cr,"Arial",CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_BOLD);
   cairo_set_font_size(cr,20);
   cairo_text_extents(cr,"",&te);
   
   int x=10,y=30,inc=1;
   
   if(partite_allenamenti==0)
   {
   while(p!=0)
        {char s[33];
         funzione_di_stampa(inc,x,y,cr,0.0,0.0,0.0); 

         x=x+50;
         cairo_move_to(cr,x,y);
         cairo_show_text(cr,p->nome);
         x=x+130;
         cairo_move_to(cr,x,y);
         cairo_show_text(cr,p->cognome);
         x=10;
         y=y+42;
         p=p->pross;
         inc++;
        } 
   }
   else
      {while(p!=0)
        {if(p->rosa==1)
            {
             char s[33];
             funzione_di_stampa(inc,x,y,cr,0.0,0.0,0.0); 

             x=x+50;
             cairo_move_to(cr,x,y);
             cairo_show_text(cr,p->nome);
             x=x+130;
             cairo_move_to(cr,x,y);
             cairo_show_text(cr,p->cognome);
             x=10;
             y=y+42;
             inc++;
            }
             p=p->pross;
        }
        
      }
      
}

void  aggiorna_bottoni_allenamenti()
{
   int numero;
   GtkWidget *immagine;
   GtkButton *bottone;


   for(int i=0;i<18;i++)
        {
         if(punta_att->bottoni_selezioni[i]==0)
            numero=0;
          else
             numero=1;

        
          immagine=gtk_image_new_from_file (togle_botton[numero]);
          bottone =GTK_BUTTON(gtk_builder_get_object(builder,nome_botton[i]));
          gtk_button_set_image (bottone,immagine);   
        }
}

void  aggiorna_bottoni_partite()
{  
   int numero;
   GtkWidget *immagine;
   GtkButton *bottone;
   int i,j;   
      
   for(i=0;i<15;i++)
        {
         if(punta_att_partite->pres_partite[i]==0)
            numero=0;
          else
             numero=2;

          immagine=gtk_image_new_from_file (togle_botton[numero]);
          bottone =GTK_BUTTON(gtk_builder_get_object(builder,nome_botton[i]));
          gtk_button_set_image (bottone,immagine);   
        }
     
     
   for(j=i;j<19;j++)
        {
     
          immagine=gtk_image_new_from_file (togle_botton[0]);
          bottone =GTK_BUTTON(gtk_builder_get_object(builder,nome_botton[i]));
          gtk_button_set_image (bottone,immagine);   
        }    
             
}  
       


extern "C" void apri_ins_pres_allenam( GtkButton *button,gpointer data )
{
  if(puntatore1==0&&puntatore2==0)
      return;

   partite_allenamenti=0;
    GtkWidget *ins_dialog =GTK_WIDGET(gtk_builder_get_object(builder,"window3") );
    gtk_widget_show_all(ins_dialog);

  aggiorna_label();
  aggiorna_bottoni_allenamenti();


   stampa=1; 
   GtkWidget *finestra=GTK_WIDGET(gtk_builder_get_object(builder,"drawingarea36") );
   gtk_widget_queue_draw (finestra); 
}


  


void inserimento_presenza(int num_occ)
{
      pres_allenamento *p=new pres_allenamento();
      p->presenza=punta_att->bottoni_selezioni[num_occ];
 
       p->giorno=punta_att->giorno;
      strcpy(p->mese_parola,punta_att->mese_parola);
      //strcpy(p->giono_settimana,);
      p->anno=punta_att->anno;

      aggiungi_ins_pres_giornate(p,num_occ); 
               
}

void modalita_allenamento(int num,char bottone[])
{
     if(punta_att->bottoni_selezioni[num]==0)
      punta_att->bottoni_selezioni[num]=1;
  else
       punta_att->bottoni_selezioni[num]=0;

  int numero=punta_att->bottoni_selezioni[num];
  GtkWidget *immagine=gtk_image_new_from_file (togle_botton[numero]);
  GtkButton *botto =GTK_BUTTON(gtk_builder_get_object(builder,bottone));
  gtk_button_set_image (botto,immagine);     

  inserimento_presenza(num);
  calcola_punteggi_partite(); 
}

void modalita_partita(int num,char bottone[])
{
  if(punta_att_partite->pres_partite[num]==0)
      punta_att_partite->pres_partite[num]=1;
  else
       punta_att_partite->pres_partite[num]=0;
 
  int numero;
  if(punta_att_partite->pres_partite[num]==1)
     numero=2;
  else   
     numero=punta_att_partite->pres_partite[num];
     
  GtkWidget *immagine=gtk_image_new_from_file (togle_botton[numero]);
  GtkButton *botto =GTK_BUTTON(gtk_builder_get_object(builder,bottone));
  gtk_button_set_image (botto,immagine);     

  inserimento_presenza(num);
  calcola_punteggi_partite();
 
}

extern "C" void selezione_1( GtkButton *button,gpointer data )
{
  int mod=partite_allenamenti;
  if(mod==0)
     modalita_allenamento(0,nome_botton[0]); 
  else
     modalita_partita(0,nome_botton[0]); 

}  

extern "C" void selezione_2( GtkButton *button,gpointer data )
{
     int mod=partite_allenamenti;
  if(mod==0)
     modalita_allenamento(1,nome_botton[1]); 
  else
     modalita_partita(1,nome_botton[1]); 

}

extern "C" void selezione_3( GtkButton *button,gpointer data )
{
     int mod=partite_allenamenti;
  if(mod==0)
     modalita_allenamento(2,nome_botton[2]); 
  else
     modalita_partita(2,nome_botton[2]); 
  
}

extern "C" void selezione_4( GtkButton *button,gpointer data )
{
     int mod=partite_allenamenti;
  if(mod==0)
     modalita_allenamento(3,nome_botton[3]); 
  else
     modalita_partita(3,nome_botton[3]); 
  
}

extern "C" void selezione_5( GtkButton *button,gpointer data )
{
     int mod=partite_allenamenti;
  if(mod==0)
     modalita_allenamento(4,nome_botton[4]); 
  else
     modalita_partita(4,nome_botton[4]); 
  
}

extern "C" void selezione_6( GtkButton *button,gpointer data )
{
     int mod=partite_allenamenti;
  if(mod==0)
     modalita_allenamento(5,nome_botton[5]); 
  else
     modalita_partita(5,nome_botton[5]); 
  
}

extern "C" void selezione_7( GtkButton *button,gpointer data )
{
     int mod=partite_allenamenti;
  if(mod==0)
     modalita_allenamento(6,nome_botton[6]); 
  else
     modalita_partita(6,nome_botton[6]); 
  
}

extern "C" void selezione_8( GtkButton *button,gpointer data )
{
     int mod=partite_allenamenti;
  if(mod==0)
     modalita_allenamento(7,nome_botton[7]); 
  else
     modalita_partita(7,nome_botton[7]); 

}

extern "C" void selezione_9( GtkButton *button,gpointer data )
{
     int mod=partite_allenamenti;
  if(mod==0)
     modalita_allenamento(8,nome_botton[8]); 
  else
     modalita_partita(8,nome_botton[8]); 

}

extern "C" void selezione_10( GtkButton *button,gpointer data )
{
     int mod=partite_allenamenti;
  if(mod==0)
     modalita_allenamento(9,nome_botton[9]); 
  else
     modalita_partita(9,nome_botton[9]); 
  
}

extern "C" void selezione_11( GtkButton *button,gpointer data )
{
     int mod=partite_allenamenti;
  if(mod==0)
     modalita_allenamento(10,nome_botton[10]); 
  else
     modalita_partita(10,nome_botton[10]); 
  
}

extern "C" void selezione_12( GtkButton *button,gpointer data )
{
     int mod=partite_allenamenti;
  if(mod==0)
     modalita_allenamento(11,nome_botton[11]); 
  else
     modalita_partita(11,nome_botton[11]); 
  
}

extern "C" void selezione_13( GtkButton *button,gpointer data )
{
     int mod=partite_allenamenti;
  if(mod==0)
     modalita_allenamento(12,nome_botton[12]); 
  else
     modalita_partita(12,nome_botton[12]); 
  
}

extern "C" void selezione_14( GtkButton *button,gpointer data )
{
     int mod=partite_allenamenti;
  if(mod==0)
     modalita_allenamento(13,nome_botton[13]); 
  else
     modalita_partita(13,nome_botton[13]); 
  
}

extern "C" void selezione_15( GtkButton *button,gpointer data )
{
     int mod=partite_allenamenti;
  if(mod==0)
     modalita_allenamento(14,nome_botton[14]); 
  else
     modalita_partita(14,nome_botton[14]); 
  
}

extern "C" void selezione_16( GtkButton *button,gpointer data )
{
   int mod=partite_allenamenti;
   if(mod==1)
      return;

   if(punta_att->bottoni_selezioni[15]==0)
      punta_att->bottoni_selezioni[15]=1;
  else
       punta_att->bottoni_selezioni[15]=0;

  int numero=punta_att->bottoni_selezioni[15];
  GtkWidget *immagine=gtk_image_new_from_file (togle_botton[numero]);
  GtkButton *bottone =GTK_BUTTON(gtk_builder_get_object(builder,"button10"));
  gtk_button_set_image (bottone,immagine);    

   inserimento_presenza(15);
  
}

extern "C" void selezione_17( GtkButton *button,gpointer data )
{
   int mod=partite_allenamenti;
   if(mod==1)
      return;

     if(punta_att->bottoni_selezioni[16]==0)
      punta_att->bottoni_selezioni[16]=1;
  else
       punta_att->bottoni_selezioni[16]=0;

  int numero=punta_att->bottoni_selezioni[16];
  GtkWidget *immagine=gtk_image_new_from_file (togle_botton[numero]);
  GtkButton *bottone =GTK_BUTTON(gtk_builder_get_object(builder,"button11"));
  gtk_button_set_image (bottone,immagine);    

   inserimento_presenza(16);
  
}

extern "C" void selezione_18( GtkButton *button,gpointer data )
{
      int mod=partite_allenamenti;
      if(mod==1)
         return;

     if(punta_att->bottoni_selezioni[17]==0)
      punta_att->bottoni_selezioni[17]=1;
  else
       punta_att->bottoni_selezioni[17]=0;

  int numero=punta_att->bottoni_selezioni[17];
  GtkWidget *immagine=gtk_image_new_from_file (togle_botton[numero]);
  GtkButton *bottone =GTK_BUTTON(gtk_builder_get_object(builder,"button12"));
  gtk_button_set_image (bottone,immagine);    

   inserimento_presenza(17);
  
}

//_______________________________________________________________


int giornata_attuale=0; 

extern "C" void chiudi_ins_pres_giornate( GtkButton *button,gpointer data )
{
 
    GtkWidget *ins_dialog =GTK_WIDGET(gtk_builder_get_object(builder,"window3") );
    gtk_widget_hide(ins_dialog);             
}

extern "C" void scorri_destra_giornate( GtkButton *button,gpointer data )
{   
    if(partite_allenamenti==1)
     {if(punta_att_partite->pross!=0)
          punta_att_partite=punta_att_partite->pross;
               
       aggiorna_bottoni_partite();
      aggiorna_label_parite();
      }
    else  
     {
         if(punta_att->pross!=0)
               punta_att=punta_att->pross;
               
          aggiorna_bottoni_allenamenti();
          aggiorna_label();
      }
   
      stampa=1; 
    GtkWidget *finestra=GTK_WIDGET(gtk_builder_get_object(builder,"drawingarea36") );
    gtk_widget_queue_draw (finestra); 
}

extern "C" void scorri_sinistra_giornate( GtkButton *button,gpointer data )
{
    if(partite_allenamenti==1)
     {if(punta_att_partite->precc!=0)
          punta_att_partite=punta_att_partite->precc;
               
       aggiorna_bottoni_partite();
      aggiorna_label_parite();}
    else  
     {
       if(punta_att->precc!=0)
            punta_att=punta_att->precc;
               
       aggiorna_bottoni_allenamenti();
      aggiorna_label();}
 
    stampa=1; 
    GtkWidget *finestra=GTK_WIDGET(gtk_builder_get_object(builder,"drawingarea36") );
    gtk_widget_queue_draw (finestra);     
}

// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//                                                                                            INSERIMENTO PRESENZE PARTITE
// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

extern "C" void apri_ins_pres_partite( GtkButton *button,gpointer data )
{
  if(puntatore3==0&&puntatore2==0)
      return;

   partite_allenamenti=1;
   GtkWidget *ins_dialog =GTK_WIDGET(gtk_builder_get_object(builder,"window3") );
   gtk_widget_show_all(ins_dialog);

  aggiorna_label_parite();
  aggiorna_bottoni_partite();

   stampa=1; 
   GtkWidget *finestra=GTK_WIDGET(gtk_builder_get_object(builder,"drawingarea36") );
   gtk_widget_queue_draw (finestra);         
}

// -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// ------------------------------------------------------              handler Generali                   -----------------------------------------------------------------------
// -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

extern "C" void aggiungi_giocatore( GtkButton *button,gpointer data )
{  
    GtkTextView *ins_textview = GTK_TEXT_VIEW(gtk_builder_get_object(builder, "textview2")) ;
    GtkTextView *ins_textview2 = GTK_TEXT_VIEW(gtk_builder_get_object(builder, "textview3")) ;
      
    GtkTextBuffer *buffer = gtk_text_view_get_buffer(ins_textview) ;
    GtkTextBuffer *buffer2 = gtk_text_view_get_buffer(ins_textview2) ;
     
     GtkTextIter start, end;
     GtkTextIter start2, end2;
     
     gtk_text_buffer_get_bounds(buffer,&start,&end);
     gtk_text_buffer_get_bounds(buffer2,&start2,&end2);
   
     char *elem_string = gtk_text_buffer_get_text(buffer, &start, &end, TRUE);
     char *elem_string2 = gtk_text_buffer_get_text(buffer2, &start2, &end2, TRUE);
     
     istringstream s(elem_string);
     istringstream s2(elem_string2);

   if(ins_giocatore_sq_palestra==0)
     {char ruolo[][20]={"Portiere","Difensore","Attacante"};
      char NOMI_MAIUSCOLO[2][20];
    
      giocatore *p=new giocatore();
      s>>NOMI_MAIUSCOLO[0];
      s2>>NOMI_MAIUSCOLO[1];

      NOMI_MAIUSCOLO[0][0]=toupper(NOMI_MAIUSCOLO[0][0]);
      NOMI_MAIUSCOLO[1][0]=toupper(NOMI_MAIUSCOLO[1][0]);

      strcpy(p->nome,NOMI_MAIUSCOLO[0]);
      strcpy(p->cognome,NOMI_MAIUSCOLO[1]);

      strcpy(p->ruolo,ruolo[num_ruolo]);
      
      p->rosa=interruttore;

     punti_allenamento *q=new punti_allenamento();      
     q->num_allenamenti=0;
     q->punteggio=0;
     q->punt_miglior_giocator=0;
     q->pross=0;
     q->precc=0;
        
     p->pres_allenam=0;

     p->punti_allenam=q;
     
     punti_partite *t=new punti_partite();
     t->num_partite=0;
     t->punt_partite=0;
     t->gol=0;
     t->media_voti=0.0;
     t->punti_voti=0;
     
     p->point_partite=t;
     
     crea_giocatore(p);
     
     stampa=0;
     salva_nel_file();
     }
   else
   {            
     s>>punta_att_partite->squadra;
     s2>>punta_att_partite->palestra;
     stampa=5;
   }  
   
    salva_nel_file();
    GtkWidget *finestra=GTK_WIDGET(gtk_builder_get_object(builder,"drawingarea36") );
    gtk_widget_queue_draw (finestra); 
     
}

extern "C" void chiudi_ins_gior_gioc( GtkButton *button,gpointer data )
{
    GtkWidget *ins_dialog =GTK_WIDGET(gtk_builder_get_object(builder,"window2") );
    gtk_widget_hide(ins_dialog);
}




void disegna_sfondo(cairo_t  *cr,int x,int y)
{
        cairo_set_source_rgb (cr,r,g,b);
        cairo_new_sub_path(cr);
        cairo_arc(cr,x,y,25,0,90);
        cairo_fill(cr);
        
        cairo_set_source_rgb (cr,r,g,b);
        cairo_new_sub_path(cr);
        cairo_arc(cr,x+500,y,25,0,90);
        cairo_fill(cr);
        
        cairo_set_source_rgb (cr, r,g,b);
        cairo_new_sub_path(cr);
        cairo_arc(cr,x,y+500,25,0,90);
        cairo_fill(cr);
        
        cairo_set_source_rgb (cr, r,g,b);
        cairo_new_sub_path(cr);
        cairo_arc(cr,x+500,y+500,25,0,90);
        cairo_fill(cr);
        
        cairo_set_source_rgb (cr, r,g,b);
        cairo_rectangle (cr, x-25, y, 550, 500);
        cairo_fill(cr);
        
        cairo_set_source_rgb (cr, r,g,b);
        cairo_rectangle (cr, x, y-25, 500, 550);
        cairo_fill(cr);
        
        //-----------------------------------------------------
        
        cairo_set_source_rgb (cr, 0.99,0.99, 0.99);
        cairo_new_sub_path(cr);
        cairo_arc(cr,x,y+100,15,0,90);
        cairo_fill(cr);
        
        cairo_set_source_rgb (cr, 0.99,0.99, 0.99);
        cairo_new_sub_path(cr);
        cairo_arc(cr,x+500,y+100,15,0,90);
        cairo_fill(cr);
        
        cairo_set_source_rgb (cr, 0.99,0.99, 0.99);
        cairo_new_sub_path(cr);
        cairo_arc(cr,x,y+150,15,0,90);
        cairo_fill(cr);
        
        cairo_set_source_rgb (cr, 0.99,0.99, 0.99);
        cairo_new_sub_path(cr);
        cairo_arc(cr,x+500,y+150,15,0,90);
        cairo_fill(cr);
        
        cairo_set_source_rgb (cr, 0.99,0.99, 0.99);
        cairo_rectangle (cr, x-15, y+100, 530, 50);
        cairo_fill(cr);
        
        cairo_set_source_rgb (cr, 0.99,0.99, 0.99);
        cairo_rectangle (cr, x, y-15+100, 500, 80);
        cairo_fill(cr);
        
        cairo_set_source_rgb (cr, r,g,b);
        cairo_new_sub_path(cr);
        cairo_arc(cr,x,y+100,10,0,90);
        cairo_fill(cr);
        
        cairo_set_source_rgb (cr,r,g,b);
        cairo_new_sub_path(cr);
        cairo_arc(cr,x+500,y+100,10,0,90);
        cairo_fill(cr);
        
        cairo_set_source_rgb (cr, r,g,b);
        cairo_new_sub_path(cr);
        cairo_arc(cr,x,y+150,10,0,90);
        cairo_fill(cr);
        
        cairo_set_source_rgb (cr, r,g,b);
        cairo_new_sub_path(cr);
        cairo_arc(cr,x+500,y+150,10,0,90);
        cairo_fill(cr);
        
        cairo_set_source_rgb (cr, r,g,b);
        cairo_rectangle (cr, x-10, y+100, 520, 50);
        cairo_fill(cr);
        
        cairo_set_source_rgb (cr, r,g,b);
        cairo_rectangle (cr, x, y-10+100, 500, 70);
        cairo_fill(cr);
        
          //-----------------------------------------------------
        
        cairo_set_source_rgb (cr, 0.99,0.99, 0.99);
        cairo_new_sub_path(cr);
        cairo_arc(cr,x,y+200,15,0,90);
        cairo_fill(cr);
        
        cairo_set_source_rgb (cr, 0.99,0.99, 0.99);
        cairo_new_sub_path(cr);
        cairo_arc(cr,x+500,y+200,15,0,90);
        cairo_fill(cr);
        
        
        cairo_set_source_rgb (cr, 0.99,0.99, 0.99);
        cairo_rectangle (cr, x-15, y+200, 530, 70);
        cairo_fill(cr);
        
        cairo_set_source_rgb (cr, 0.99,0.99, 0.99);
        cairo_rectangle (cr, x, y-15+200, 500, 80);
        cairo_fill(cr);
        
        cairo_set_source_rgb (cr, r,g,b);
        cairo_new_sub_path(cr);
        cairo_arc(cr,x,y+200,10,0,90);
        cairo_fill(cr);
        
        cairo_set_source_rgb (cr, r,g,b);
        cairo_new_sub_path(cr);
        cairo_arc(cr,x+500,y+200,10,0,90);
        cairo_fill(cr);
        
        cairo_set_source_rgb (cr, r,g,b);
        cairo_new_sub_path(cr);
        cairo_arc(cr,x,y+250,10,0,90);
        cairo_fill(cr);
        
        cairo_set_source_rgb (cr, r,g,b);
        cairo_new_sub_path(cr);
        cairo_arc(cr,x+500,y+250,10,0,90);
        cairo_fill(cr);
        
        cairo_set_source_rgb (cr,r,g,b);
        cairo_rectangle (cr, x-10, y+200, 520, 50);
        cairo_fill(cr);
        
        cairo_set_source_rgb (cr, r,g,b);
        cairo_rectangle (cr, x, y-10+200, 500, 70);
        cairo_fill(cr);
        
        //-----------------------------------------------------
        
        /*
        cairo_set_source_rgb (cr, 0.99,0.99, 0.99);
        cairo_new_sub_path(cr);
        cairo_arc(cr,x,y+265,15,0,90);
        cairo_fill(cr);
        
        cairo_set_source_rgb (cr, 0.99,0.99, 0.99);
        cairo_new_sub_path(cr);
        cairo_arc(cr,x+500,y+265,15,0,90);
        cairo_fill(cr);  */
        
        cairo_set_source_rgb (cr, 0.99,0.99, 0.99);
        cairo_new_sub_path(cr);
        cairo_arc(cr,x,y+500,15,0,90);
        cairo_fill(cr);
        
        cairo_set_source_rgb (cr, 0.99,0.99, 0.99);
        cairo_new_sub_path(cr);
        cairo_arc(cr,x+500,y+500,15,0,90);
        cairo_fill(cr);
        
        cairo_set_source_rgb (cr, 0.99,0.99, 0.99);
        cairo_rectangle (cr, x-15, y+260, 530, 240);
        cairo_fill(cr); 
        
        
        cairo_set_source_rgb (cr, 0.99,0.99, 0.99);
        cairo_rectangle (cr, x, y-15+300, 500, 230);
        cairo_fill(cr);  

}



int lun_gio_settimana(int lung_stringa,char stringa[])
{
   for(int i=0;i<7;i++)
       {if(strcmp(stringa,giorni_car[i])==0)
            lung_stringa+=lunghezza_gio_settimana[i];   
       }
       
  return lung_stringa;
}

int lun_mese(int lung_stringa,char stringa[])
{
   char mon_name[][15] = {"Gennaio","Febbraio", "Marzo", "Aprile", "Maggio", "Giugno","Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre" };

  for(int i=0;i<12;i++)
       {if(strcmp(stringa,mon_name[i])==0)
            lung_stringa+=lunghezza_mese[i];   
       }
       
  return lung_stringa;
}

int lun_nome_squadra(int lung_stringa,char stringa[])
{

  for(int i=0;i<15;i++)
       {if(strcmp(stringa,nomi_squadre[i])==0)
            lung_stringa+=lunghezz_nomi_sq[i];   
       }
       
  return lung_stringa;
}

int lun_numeri(int lung_stringa,int numero)
{
  if(numero/10==0)
     lung_stringa+=14;
  else
     lung_stringa+=28;

  return lung_stringa;
}

int inizio_scritta(partite *p)
{

  int lung_stringa=0,inizio_stringa=0;


  lung_stringa=lun_gio_settimana(lung_stringa,p->giono_settimana);
       
  lung_stringa+=10;       
  lung_stringa=lun_numeri(lung_stringa,p->giorno);     
  lung_stringa+=10;     
  
  lung_stringa=lun_mese(lung_stringa,p->mese_parola);
  
  
  lung_stringa+=10+30;     
       
  inizio_stringa=500-lung_stringa;
  inizio_stringa=inizio_stringa/2;
  inizio_stringa+=5;   
       
  return inizio_stringa;
}

int inizio_scritta_squadre(partite *p,int cond)
{

  int lung_stringa=0,inizio_stringa=0;

  lung_stringa=lun_nome_squadra(lung_stringa,nomi_squadre[0]);
    
       
  lung_stringa+=10;   
  if(cond==1)    
     {lung_stringa=lun_numeri(lung_stringa,p->risultato[0]);     
      lung_stringa+=5; }
  lung_stringa=lun_nome_squadra(lung_stringa,nomi_squadre[14]);   
   if(cond==1)  
      { lung_stringa+=5; 
        lung_stringa=lun_numeri(lung_stringa,p->risultato[1]);}
         
  lung_stringa+=15; 
  
 lung_stringa=lun_nome_squadra(lung_stringa,p->squadra);
  
  
    
  inizio_stringa=500-lung_stringa;
  inizio_stringa=inizio_stringa/2;
  inizio_stringa+=25;   
       
  return inizio_stringa;
}

void disegna_scritte(cairo_t  *cr,int x,int y,int cont_colore)
{
        cairo_text_extents_t te;
        cairo_set_source_rgb (cr, 0.99,0.99, 0.99);
        cairo_select_font_face(cr,"Ubunto",CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_BOLD);
        cairo_set_font_size(cr,40);
        cairo_text_extents(cr,"a",&te);
        
        partite *p=puntatore3;
        partite *q=puntatore3;
        giocatore *t=puntatore2;
        
        int inc=0; 
        
        time_t rawtime;
        struct tm * timeptr;

        time ( &rawtime );
        timeptr = localtime ( &rawtime );

        char mon_name[][15] = {"Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno","Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre" };
  
         if(colore_chiaro_scuro[cont_colore]==1)
            cairo_set_source_rgb (cr, 0.99,0.99, 0.0);
         else
            cairo_set_source_rgb (cr, 0.99,0.0, 0.0);
              
         cairo_move_to(cr,x+90,y+40);
         cairo_show_text(cr,"US Carpine Eventi");
       
                          
     int i,j;     
         
     for(i=0;i<12;i++)
           {if(strcmp(mon_name[i],mon_name[timeptr->tm_mon])==0)  
                break;
           }
                
         while(p!=0)
                   {
                    for(j=0;j<12;j++)
                          {if(strcmp(mon_name[j],p->mese_parola)==0)  
                               break;
                           }    
                     
                     if(p->anno<1900+timeptr->tm_year||j<i||p->giorno<timeptr->tm_mday)   
                         {if(p->pross!=0)
                             p=p->pross;
                          else
                            break;}
                      else
                         break;
                                                 
                   }
                   
         cairo_set_font_size(cr,20);
         cairo_text_extents(cr,"a",&te);
         y=y+120;
         x=30;
            
    //    ------------------------------------------------------------------------------------------------    
            
          if(colore_chiaro_scuro[cont_colore]==1)
            {cairo_set_source_rgb(cr,0.99,0.768,0.812);}  
         else
            cairo_set_source_rgb(cr,0.572,0.0,0.99);  
            
         x=inizio_scritta(p);
                        
         cairo_set_font_size(cr,20);
         cairo_move_to(cr,x,y);
         cairo_show_text(cr,p->giono_settimana);
         
         x=lun_gio_settimana(x,p->giono_settimana);
         
         x=x+10;
         
        if(colore_chiaro_scuro[cont_colore]==1)
            funzione_di_stampa(p->giorno,x,y,cr,0.99,0.768,0.812);
         else
            funzione_di_stampa(p->giorno,x,y,cr,0.572,0.0,0.99);  

         x=lun_numeri(x,p->giorno); 
         x=x+10;
         
         cairo_move_to(cr,x,y);
         cairo_show_text(cr,p->mese_parola);
       
       
         x=lun_mese(x,p->mese_parola); 
         
         
         x=x+10;
         
          if(colore_chiaro_scuro[cont_colore]==1)
            funzione_di_stampa(p->anno,x,y,cr,0.99,0.768,0.812);
         else
            funzione_di_stampa(p->anno,x,y,cr,0.572,0.0,0.99); 
            
     //    ---------------------------------------------------------------------------------------------
         

         y=y+30;
                           
            
         if(colore_chiaro_scuro[cont_colore]==1)
            cairo_set_source_rgb (cr, 0.99,0.99, 0.0);
         else
            cairo_set_source_rgb (cr, 0.99,0.0,0.0);
            
          x=inizio_scritta_squadre(p,0);
         
         cairo_move_to(cr,x,y);
         cairo_show_text(cr,"UsCarpine");
                 
         x=lun_nome_squadra(x,"UsCarpine");
         
         x=x+10;                 

         if(colore_chiaro_scuro[cont_colore]==1||cont_colore==3)
            cairo_set_source_rgb (cr, 0.99,0.99, 0.99);
         else
            cairo_set_source_rgb (cr, 0.0,0.0,0.0);

         cairo_move_to(cr,x,y);
         cairo_show_text(cr,"-");
         x=lun_nome_squadra(x,nomi_squadre[14]); 

         x=x+15; 
           
         if(colore_chiaro_scuro[cont_colore]==1)
            cairo_set_source_rgb (cr, 0.0,0.99,0.0);
         else
            cairo_set_source_rgb (cr, 0.0,0.0, 0.99);
            
         cairo_move_to(cr,x,y);
         cairo_show_text(cr,p->squadra);
                  
         y=y+70;          
                   
                   
         while(q!=0)
                   {
                     if(strcmp(q->squadra,p->squadra)==0)
                        break;
                     else   
                        q=q->pross;                   
                   }     
                   
      //-----------------------------------------------------------------------------------          
                    
         
         if(colore_chiaro_scuro[cont_colore]==1)
            cairo_set_source_rgb(cr,0.0,0.816,0.816);  
         else
            cairo_set_source_rgb(cr,0.600,0.300,0.0); 
         
         x=inizio_scritta(q);

         cairo_move_to(cr,x,y);
         cairo_show_text(cr,q->giono_settimana);
        
         x=lun_gio_settimana(x,q->giono_settimana);
         
         x=x+10;
        
        
         if(colore_chiaro_scuro[cont_colore]==1)
            funzione_di_stampa(q->giorno,x,y,cr,0.0,0.816,0.816);
         else
            funzione_di_stampa(q->giorno,x,y,cr,0.600,0.300,0.0);  
            
         x=lun_numeri(x,q->giorno);     
         x=x+10;
                
         cairo_move_to(cr,x,y);
         cairo_show_text(cr,q->mese_parola);
                
         x=lun_mese(x,q->mese_parola); 
         x=x+10;
         
         if(colore_chiaro_scuro[cont_colore]==1)
            funzione_di_stampa(q->anno,x,y,cr,0.0,0.816,0.816);
         else
            funzione_di_stampa(q->anno,x,y,cr,0.600,0.300,0.0); 


             //-----------------------------------------------------------------------------------  

         y=y+30;

         x=30;
 
        x=inizio_scritta_squadre(q,1);
        
        if(colore_chiaro_scuro[cont_colore]==1)
            cairo_set_source_rgb (cr, 0.99,0.99, 0.0);
         else
            cairo_set_source_rgb (cr, 0.99,0.0, 0.0);
         cairo_move_to(cr,x,y);
         cairo_show_text(cr,"UsCarpine");
         
         x=lun_nome_squadra(x,"UsCarpine");
            
         x=x+10;  
         
         if(colore_chiaro_scuro[cont_colore]==1||cont_colore==3)
            {if(q->risultato[0]==0)
                { cairo_set_source_rgb (cr, 0.99,0.99, 0.99);
                  cairo_move_to(cr,x,y);
                  cairo_show_text(cr,"0");}
              else  
            funzione_di_stampa(q->risultato[0],x,y,cr,0.999,0.999,0.999);}
         else
               {if(q->risultato[0]==0)
                { cairo_set_source_rgb (cr, 0.99,0.99, 0.99);
                  cairo_move_to(cr,x,y);
                  cairo_show_text(cr,"0");}
              else  
            funzione_di_stampa(q->risultato[0],x,y,cr,0.0,0.0,0.0); }

         x=lun_numeri(x,q->risultato[0]);  
         x=x+5;
         cairo_move_to(cr,x,y);
         cairo_show_text(cr,"-");
         x=lun_nome_squadra(x,"-"); 
          x=x+5;
         
         
         
         if(colore_chiaro_scuro[cont_colore]==1||cont_colore==3)
            {if(q->risultato[1]==0)
                { cairo_set_source_rgb (cr, 0.99,0.99, 0.99);
                  cairo_move_to(cr,x,y);
                  cairo_show_text(cr,"0");}
              else   
              funzione_di_stampa(q->risultato[1],x,y,cr,0.999,0.999,0.999);}
         else
               {if(q->risultato[1]==0)
                { cairo_set_source_rgb (cr, 0.99,0.99, 0.99);
                  cairo_move_to(cr,x,y);
                  cairo_show_text(cr,"0");}
              else  
            funzione_di_stampa(q->risultato[1],x,y,cr,0.0,0.0,0.0); }
        
         x=lun_numeri(x,q->risultato[1]); 
         x=x+15; 
         
         if(colore_chiaro_scuro[cont_colore]==1)
            cairo_set_source_rgb (cr, 0.0,0.99,0.0);
         else
            cairo_set_source_rgb (cr, 0.0,0.0, 0.99);
         
         cairo_move_to(cr,x,y);
         cairo_show_text(cr,q->squadra);
                      
         inc=0;
         x=140;
         y=y+40;
         
         cairo_set_source_rgb (cr, 0.0,0.0, 0.99);  
         cairo_move_to(cr,x,y);
         cairo_show_text(cr,"Marcatori Della Giornata");
         
         x=100;
         y=y+40;
         
         while(t!=0)
                   {
                    if(t->rosa==1&&q->gol_partite[inc]!=0)
                       { 
                          cairo_set_source_rgb (cr, 0.0,0.0, 0.0);
                          cairo_new_sub_path(cr);
                          cairo_arc(cr,x,y-7,5,0,90);
                          cairo_fill(cr);
                          x=x+15;
                       
                         cairo_set_source_rgb (cr, 0.0,0.0, 0.0);
                         cairo_move_to(cr,x,y);
                         cairo_show_text(cr,t->nome);
                         x=x+160;
                         cairo_move_to(cr,x,y);
                         cairo_show_text(cr,t->cognome);
                         x=x+160;
                         funzione_di_stampa(q->gol_partite[inc],x,y,cr,0.0,0.99,0.0); 
                         y=y+30;
                         x=100;
                        } 
                   
                   if(t->rosa==1)
                       inc++;

                        
                     t=t->pross;

                   }

}

void disegna_figure(cairo_t  *cr,int x,int y)
{

        x=x+30;
        y=y+30;
        
        cairo_set_source_rgb (cr, 0.999,0.999, 0.999);
        cairo_new_sub_path(cr);
        cairo_arc(cr,x,y,42,0,90);
        cairo_fill(cr);
   
        cairo_set_source_rgb (cr, 0.99,0.0, 0.0);
        cairo_new_sub_path(cr);
        cairo_arc(cr,x,y,40,0,90);
        cairo_fill(cr);
        
   cairo_surface_t *image=cairo_image_surface_create_from_png ("figure/us_carpine.png");
  cairo_set_source_surface (cr,image ,x-40,y-40);
  cairo_paint ( cr);  
        
}

/* char converti_char_int(int numero)
{
   int num=numero,cont=0;
   char stringa_numero[]="0123456789";
   float num_float;
   
   while(num!=0)
             {num/=10;
              cont++;}
              
   char stringa[cont+1];
   
   num=numero;
   
   num_float=num_float/10;
   
   
   cont=0;
   while(num!=0)
             {
               stringa[cont]=stringa_numero[num]
               num/=10;
              }            

} */

void salva_su_immagine_locandina(cairo_t  *cr)
{
        time_t rawtime;
        struct tm * timeptr;

        time ( &rawtime );
        timeptr = localtime ( &rawtime );
        
         int x=30,y=30;
  
         partite *p=puntatore3;
        partite *q=puntatore3;
        giocatore *t=puntatore2;
        
        cairo_surface_t *surface;   
        surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, 560, 560);
       cr= cairo_create(surface); 
        
      char mon_name[][15] = {"Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno","Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre" };
  
       int i,j;     
       
         
     for(i=0;i<12;i++)
           {if(strcmp(mon_name[i],mon_name[timeptr->tm_mon])==0)  
                break;
           }
                
         while(p!=0)
                   {
                    for(j=0;j<12;j++)
                          {if(strcmp(mon_name[j],p->mese_parola)==0)  
                               break;
                           }    
                     
                     if(p->anno<1900+timeptr->tm_year||j<i||p->giorno<timeptr->tm_mday)   
                         {if(p->pross!=0)
                             p=p->pross;
                          else
                            break;}
                      else
                         break;
                                                 
                   }
                   
           int cont=0,cont_colore=0;
   
           while(q!=0)
                   {
                     if(strcmp(q->squadra,p->squadra)==0)
                        {r=colori_per_locandina[cont];
                         g=colori_per_locandina[cont+1];
                         b=colori_per_locandina[cont+2];
                         break;}
                     else   
                        q=q->pross;                
                        
                     cont+=3;   
                     cont_colore++;   
                   }   
 
  
  disegna_sfondo(cr,x,y);
  
  disegna_scritte(cr,x,y,cont_colore);
  
  disegna_figure(cr,x,y);
  
  char max_stringa[100];
  
  char stringa[33];

  strcpy(max_stringa,"locandine/");
  strcat(max_stringa,p->giono_settimana);
  
  itoa(p->giorno, stringa);
  
  strcat(max_stringa,stringa);
  strcat(max_stringa,p->mese_parola);
  
  itoa(p->anno,stringa);
  
  strcat(max_stringa,stringa);
  strcat(max_stringa,"UsCarpine-");
  strcat(max_stringa,p->squadra);
  strcat(max_stringa,".png");
  
  cairo_surface_write_to_png(surface,max_stringa); 

}

void stampa_locandine_eventi(cairo_t  *cr)
{
        time_t rawtime;
        struct tm * timeptr;

        time ( &rawtime );
        timeptr = localtime ( &rawtime );
        
         int x=30,y=30;
  
         partite *p=puntatore3;
        partite *q=puntatore3;
        giocatore *t=puntatore2;
           
      char mon_name[][15] = {"Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno","Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre" };
  
       int i,j;     
         
     for(i=0;i<12;i++)
           {if(strcmp(mon_name[i],mon_name[timeptr->tm_mon])==0)  
                break;
           }
                
         while(p!=0)
                   {
                    for(j=0;j<12;j++)
                          {if(strcmp(mon_name[j],p->mese_parola)==0)  
                               break;
                           }    
                     
                     if(p->anno<1900+timeptr->tm_year||j<i||p->giorno<timeptr->tm_mday)   
                        {if(p->pross!=0)
                             p=p->pross;
                          else
                            break;}
                      else
                         break;
                                                 
                   }
                   
           int cont=0,cont_colore=0;
   
           while(q!=0)
                   {
                     if(strcmp(q->squadra,p->squadra)==0)
                        {r=colori_per_locandina[cont];
                         g=colori_per_locandina[cont+1];
                         b=colori_per_locandina[cont+2];
                         break;}
                     else   
                        q=q->pross;                
                        
                     cont+=3;   
                     cont_colore++;   
                   }   
 
  
  disegna_sfondo(cr,x,y);
  
  disegna_scritte(cr,x,y,cont_colore);
  
  disegna_figure(cr,x,y);
  
  salva_su_immagine_locandina(cr);
  
}


extern "C" gboolean disegna_classifiche(GtkWidget  * widget,cairo_t  * cr,gpointer dati)
{
     cairo_set_source_rgb (cr, 0.999,0.999, 0.999);
     cairo_paint ( cr); 
     
     cairo_surface_t *surface;
   
     if(stampa==0)
         aggiorna_schermata1(cr);
         
     if(stampa==1)    
         aggiorna_schermata2(cr);

     if(stampa==2)    
         stampa_punt_max(cr);
        
     if(stampa==4)        
         aggiorna_schermata(cr);    
         
     if(stampa==5)        
         aggiorna_schermata_partite(cr);       
         
     if(stampa==6)        
         stampa_classifica_pres_partite(cr);        
         
     if(stampa==7)        
         stampa_classifica_marcatori(cr); 
      
     
     if(stampa==8)        
         stampa_classifica_voti(cr);       
         
      if(stampa==9)        
         stampa_classifica_migliore_giocatore(cr);       
         
      if(stampa==10)        
         stampa_locandine_eventi(cr);  
         
     if(stampa==11)        
         stampa_informazioni(cr);      
           
}


// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//                                                                                            INSERIMENTO RISULTATI PARTITE
// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

int Gol_voti=0;

extern "C" gboolean bordi_reti_voti(GtkWidget  * widget,  cairo_t  * cr ,  gpointer dati )
{

 if(Gol_voti==0)
    {cairo_set_source_rgb (cr, 0,0.99, 0);
    cairo_paint ( cr); 
    }
  else
   {cairo_set_source_rgb (cr, 0,0, 0.99);
    cairo_paint ( cr); 
    }
}

extern "C" void apri_finestra_risultati( GtkButton *button,gpointer data )
{
    GtkWidget *ins_dialog =GTK_WIDGET(gtk_builder_get_object(builder,"window5") );
    gtk_widget_show_all(ins_dialog);
}

extern "C" void chiudi_finestra_risultati( GtkButton *button,gpointer data )
{
    GtkWidget *ins_dialog =GTK_WIDGET(gtk_builder_get_object(builder,"window5") );
    gtk_widget_hide(ins_dialog);
}

extern "C" gboolean disegna_giornate_squadra(GtkWidget  * widget,cairo_t  * cr,gpointer dati)
{
     
   cairo_text_extents_t te;
   cairo_set_source_rgb (cr, 0.0,0.0, 0.0);
   cairo_select_font_face(cr,"Arial",CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_BOLD);
   cairo_set_font_size(cr,20);
   cairo_text_extents(cr,"",&te);
   
   int x=10,y=30;
   
   cairo_move_to(cr,x,y);
   cairo_show_text(cr,punta_att_partite->giono_settimana);
   x=x+100;
   
   funzione_di_stampa(punta_att_partite->giorno,x,y,cr,0.0,0.0,0.0); 

   x=x+30;
   cairo_move_to(cr,x,y);
   cairo_show_text(cr,punta_att_partite->mese_parola);
   x=x+100;
         funzione_di_stampa(punta_att_partite->anno,x,y,cr,0.0,0.0,0.0); 
         x=x+75;
         cairo_move_to(cr,x,y);
         cairo_show_text(cr,"US Carpine - ");
         x=x+125;
         cairo_move_to(cr,x,y);
         cairo_show_text(cr,punta_att_partite->squadra);

         
   y=y+30;
   x=10;
   
   cairo_set_source_rgb (cr, 0.99,0.99, 0.0); 
   cairo_move_to(cr,x,y);
   cairo_show_text(cr,"US");
   cairo_set_source_rgb (cr, 0.99,0.0, 0.0); 
   cairo_show_text(cr," Carpine");
   
   x=x+120;
   

   funzione_di_stampa(punta_att_partite->risultato[0],x,y,cr,0.0,0.0,0.99); 
   
   x=x+10;
   
  cairo_set_source_rgb (cr, 0,0.0, 0.99); 
  cairo_move_to(cr,x,y);
  cairo_show_text(cr," - ");
   
  x=x+13;
  
  funzione_di_stampa(punta_att_partite->risultato[1],x,y,cr,0.0,0.0,0.99);
  x=x+30;
  
  cairo_set_source_rgb (cr, 0.448,0.512, 0.576);
  cairo_move_to(cr,x,y);
  cairo_show_text(cr,punta_att_partite->squadra);
                       
}

extern "C" void scorri_sinistra_giornate_risultati( GtkButton *button,gpointer data )
{

     if(punta_att_partite->precc!=0)
          punta_att_partite=punta_att_partite->precc;
               
    GtkWidget *finestra=GTK_WIDGET(gtk_builder_get_object(builder,"drawingarea49") );
    gtk_widget_queue_draw (finestra);     
    finestra=GTK_WIDGET(gtk_builder_get_object(builder,"drawingarea46") );
    gtk_widget_queue_draw (finestra);   
}

extern "C" void scorri_destra_giornate_risultati( GtkButton *button,gpointer data )
{   

     if(punta_att_partite->pross!=0)
          punta_att_partite=punta_att_partite->pross;
               

    GtkWidget *finestra=GTK_WIDGET(gtk_builder_get_object(builder,"drawingarea49") );
    gtk_widget_queue_draw (finestra); 
     finestra=GTK_WIDGET(gtk_builder_get_object(builder,"drawingarea46") );
    gtk_widget_queue_draw (finestra);   
}

void Inserisci_gol(int botton,int piu_meno)
{ 
  if(piu_meno==0)
     {punta_att_partite->gol_partite[botton]+=1;
     punta_att_partite-> risultato[0]+=1;}
  else  
    {
     if(punta_att_partite->gol_partite[botton]!=0) 
        {punta_att_partite->gol_partite[botton]-=1;
         punta_att_partite-> risultato[0]-=1;}
    } 
     
   calcola_punteggi_partite();   
     
    GtkWidget *finestra=GTK_WIDGET(gtk_builder_get_object(builder,"drawingarea46") );
    gtk_widget_queue_draw (finestra);    
    
   finestra=GTK_WIDGET(gtk_builder_get_object(builder,"drawingarea49") );
   gtk_widget_queue_draw (finestra); 
}

void Inserisci_voto(int botton,int piu_meno )
{ 
  if(piu_meno==0)
     punta_att_partite->voti_partite[botton]+=0.5;
  else
    {if(punta_att_partite->voti_partite[botton]!=0) 
         punta_att_partite->voti_partite[botton]-=0.5;   
     }
     
   calcola_punteggi_partite();  
     
    GtkWidget *finestra=GTK_WIDGET(gtk_builder_get_object(builder,"drawingarea46") );
    gtk_widget_queue_draw (finestra);    
}  
  
extern "C" void bottone_1_piu( GtkButton *button,gpointer data )
{
   if(Gol_voti==0)
       Inserisci_gol(0,0);
   else
       Inserisci_voto(0,0);
}  

extern "C" void bottone_1_meno( GtkButton *button,gpointer data )
{
   if(Gol_voti==0)
       Inserisci_gol(0,1);
   else
       Inserisci_voto(0,1);
} 

extern "C" void bottone_2_piu( GtkButton *button,gpointer data )
{
   if(Gol_voti==0)
       Inserisci_gol(1,0);
   else
       Inserisci_voto(1,0);
}  

extern "C" void bottone_2_meno( GtkButton *button,gpointer data )
{
   if(Gol_voti==0)
       Inserisci_gol(1,1);
   else
       Inserisci_voto(1,1);
} 

extern "C" void bottone_3_piu( GtkButton *button,gpointer data )
{
   if(Gol_voti==0)
       Inserisci_gol(2,0);
   else
       Inserisci_voto(2,0);
}  

extern "C" void bottone_3_meno( GtkButton *button,gpointer data )
{
   if(Gol_voti==0)
       Inserisci_gol(2,1);
   else
       Inserisci_voto(2,1);
} 

extern "C" void bottone_4_piu( GtkButton *button,gpointer data )
{
   if(Gol_voti==0)
       Inserisci_gol(3,0);
   else
       Inserisci_voto(3,0);
}  

extern "C" void bottone_4_meno( GtkButton *button,gpointer data )
{
   if(Gol_voti==0)
       Inserisci_gol(3,1);
   else
       Inserisci_voto(3,1);
} 

extern "C" void bottone_5_piu( GtkButton *button,gpointer data )
{
   if(Gol_voti==0)
       Inserisci_gol(4,0);
   else
       Inserisci_voto(4,0);
}  

extern "C" void bottone_5_meno( GtkButton *button,gpointer data )
{
   if(Gol_voti==0)
       Inserisci_gol(4,1);
   else
       Inserisci_voto(4,1);
} 

extern "C" void bottone_6_piu( GtkButton *button,gpointer data )
{
   if(Gol_voti==0)
       Inserisci_gol(5,0);
   else
       Inserisci_voto(5,0);
}  

extern "C" void bottone_6_meno( GtkButton *button,gpointer data )
{
   if(Gol_voti==0)
       Inserisci_gol(5,1);
   else
       Inserisci_voto(5,1);
} 

extern "C" void bottone_7_piu( GtkButton *button,gpointer data )
{
   if(Gol_voti==0)
       Inserisci_gol(6,0);
   else
       Inserisci_voto(6,0);
}  

extern "C" void bottone_7_meno( GtkButton *button,gpointer data )
{
   if(Gol_voti==0)
       Inserisci_gol(6,1);
   else
       Inserisci_voto(6,1);
} 

extern "C" void bottone_8_piu( GtkButton *button,gpointer data )
{
   if(Gol_voti==0)
       Inserisci_gol(7,0);
   else
       Inserisci_voto(7,0);
}  

extern "C" void bottone_8_meno( GtkButton *button,gpointer data )
{
   if(Gol_voti==0)
       Inserisci_gol(7,1);
   else
       Inserisci_voto(7,1);
} 

extern "C" void bottone_9_piu( GtkButton *button,gpointer data )
{
   if(Gol_voti==0)
       Inserisci_gol(8,0);
   else
       Inserisci_voto(8,0);
}  

extern "C" void bottone_9_meno( GtkButton *button,gpointer data )
{
   if(Gol_voti==0)
       Inserisci_gol(8,1);
   else
       Inserisci_voto(8,1);
} 

extern "C" void bottone_10_piu( GtkButton *button,gpointer data )
{
   if(Gol_voti==0)
       Inserisci_gol(9,0);
   else
       Inserisci_voto(9,0);
}  

extern "C" void bottone_10_meno( GtkButton *button,gpointer data )
{
   if(Gol_voti==0)
       Inserisci_gol(9,1);
   else
       Inserisci_voto(9,1);
} 

extern "C" void bottone_11_piu( GtkButton *button,gpointer data )
{
   if(Gol_voti==0)
       Inserisci_gol(10,0);
   else
       Inserisci_voto(10,0);
}  

extern "C" void bottone_11_meno( GtkButton *button,gpointer data )
{
   if(Gol_voti==0)
       Inserisci_gol(10,1);
   else
       Inserisci_voto(10,1);
} 

extern "C" void bottone_12_piu( GtkButton *button,gpointer data )
{
   if(Gol_voti==0)
       Inserisci_gol(11,0);
   else
       Inserisci_voto(11,0);
}  

extern "C" void bottone_12_meno( GtkButton *button,gpointer data )
{
   if(Gol_voti==0)
       Inserisci_gol(11,1);
   else
       Inserisci_voto(11,1);
} 

extern "C" void bottone_13_piu( GtkButton *button,gpointer data )
{
   if(Gol_voti==0)
       Inserisci_gol(12,0);
   else
       Inserisci_voto(12,0);
}  

extern "C" void bottone_13_meno( GtkButton *button,gpointer data )
{
   if(Gol_voti==0)
       Inserisci_gol(12,1);
   else
       Inserisci_voto(12,1);
} 

extern "C" void bottone_14_piu( GtkButton *button,gpointer data )
{
   if(Gol_voti==0)
       Inserisci_gol(13,0);
   else
       Inserisci_voto(13,0);
}  

extern "C" void bottone_14_meno( GtkButton *button,gpointer data )
{
   if(Gol_voti==0)
       Inserisci_gol(13,1);
   else
       Inserisci_voto(13,1);
} 

extern "C" void bottone_15_piu( GtkButton *button,gpointer data )
{
   if(Gol_voti==0)
       Inserisci_gol(14,0);
   else
       Inserisci_voto(14,0);
} 

extern "C" void bottone_15_meno( GtkButton *button,gpointer data )
{
   if(Gol_voti==0)
       Inserisci_gol(14,1);
   else
       Inserisci_voto(14,1);
} 

extern "C" void bottone_16_piu( GtkButton *button,gpointer data )
{
   if(Gol_voti==0)
       punta_att_partite->risultato[1]+=1;
   else
       return;
       
       GtkWidget *finestra=GTK_WIDGET(gtk_builder_get_object(builder,"drawingarea46") );
    gtk_widget_queue_draw (finestra);     
    
   finestra=GTK_WIDGET(gtk_builder_get_object(builder,"drawingarea49") );
   gtk_widget_queue_draw (finestra); 
} 

extern "C" void bottone_16_meno( GtkButton *button,gpointer data )
{
   if(Gol_voti==0)
       punta_att_partite->risultato[1]-=1;
   else
       return;
       
    GtkWidget *finestra=GTK_WIDGET(gtk_builder_get_object(builder,"drawingarea46") );
    gtk_widget_queue_draw (finestra);      
    
   finestra=GTK_WIDGET(gtk_builder_get_object(builder,"drawingarea49") );
   gtk_widget_queue_draw (finestra);
} 

extern "C" gboolean disegna_giocatori_squadra(GtkWidget  * widget,cairo_t  * cr,gpointer dati)
{
   giocatore *p=puntatore2;
 
     cairo_set_source_rgb (cr, 0.999,0.999, 0.999);
     cairo_paint ( cr); 
 
   cairo_text_extents_t te;
   cairo_set_source_rgb (cr, 0.0,0.0, 0.0);
   cairo_select_font_face(cr,"Georgia",CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_BOLD);
   cairo_set_font_size(cr,20);
   cairo_text_extents(cr,"",&te);
   
   int x=10,y=30,inc=0,posizione=1; 
           
   while(p!=0)
        {
         if(p->rosa==1)
           {
             funzione_di_stampa(posizione,x,y,cr,0.0,0.0,0.0);
             x=x+50;
             cairo_move_to(cr,x,y);
             cairo_show_text(cr,p->nome);
             x=x+170;
             cairo_move_to(cr,x,y);
             cairo_show_text(cr,p->cognome);
             x=x+150;

             if(Gol_voti==0)
                {for(int i=0;i<punta_att_partite->gol_partite[inc];i++)
                       {cairo_set_source_rgb (cr, 0.0,0.0, 0.99);
                        cairo_new_sub_path(cr);
                        cairo_arc(cr,x,y-5,10,0,90);
                        cairo_fill(cr); 
                        x=x+40;
                       }
                 }
             else
                {
                  funzione_di_stampa_float(punta_att_partite->voti_partite[inc],x,y,cr,0.0,0.0,0.99); 
                }       
            x=10;
            y=y+42;
            posizione++;
            inc++;
         }
          p=p->pross;     
      } 
      
        
             if(Gol_voti==0)
                {
                  funzione_di_stampa(posizione,x,y,cr,0.0,0.0,0.0);
                  x=x+50;
                
                 cairo_set_source_rgb (cr, 0.99,0.0, 0.0);

                 cairo_move_to(cr,x,y);
                 cairo_show_text(cr,punta_att_partite->squadra);
                 x=x+170;
                 x=x+150;
                             
                 for(int i=0;i<punta_att_partite->risultato[1];i++)
                       {cairo_set_source_rgb (cr, 0.99,0.0, 0.0);
                        cairo_new_sub_path(cr);
                        cairo_arc(cr,x,y-5,10,0,90);
                        cairo_fill(cr); 
                        x=x+40;
                       }
                 }
                 
}

void disegna_handler_bordi()
{
   GtkWidget *finestra;
   char stringa[][15]={"drawingarea38","drawingarea39","drawingarea40","drawingarea41","drawingarea42","drawingarea43","drawingarea44","drawingarea45","drawingarea47","drawingarea48"};
   
   for(int i=0;i<10;i++)
        {finestra=GTK_WIDGET(gtk_builder_get_object(builder,stringa[i]) );
         gtk_widget_queue_draw (finestra);  
         }

}

extern "C" void ins_voti_gool( GtkButton *button,gpointer data )
{
  if(Gol_voti==0)
     Gol_voti=1;
  else
     Gol_voti=0;
  
   GtkWidget *finestra=GTK_WIDGET(gtk_builder_get_object(builder,"drawingarea46") );
   gtk_widget_queue_draw (finestra);    
   
   disegna_handler_bordi();   
} 

extern "C" void stampa_pres_partite( GtkButton *button,gpointer data )
{
   stampa=6;
  
   GtkWidget *finestra=GTK_WIDGET(gtk_builder_get_object(builder,"drawingarea36") );
   gtk_widget_queue_draw (finestra);    
} 

extern "C" void stampa_pres_marcatori( GtkButton *button,gpointer data )
{
   stampa=7;
  
   GtkWidget *finestra=GTK_WIDGET(gtk_builder_get_object(builder,"drawingarea36") );
   gtk_widget_queue_draw (finestra);    
} 

extern "C" void stampa_pres_voti( GtkButton *button,gpointer data )
{
   stampa=8;
  
   GtkWidget *finestra=GTK_WIDGET(gtk_builder_get_object(builder,"drawingarea36") );
   gtk_widget_queue_draw (finestra);    
} 

extern "C" void stampa_pres_miglior_giocatore( GtkButton *button,gpointer data )
{
   stampa=9;
  
   GtkWidget *finestra=GTK_WIDGET(gtk_builder_get_object(builder,"drawingarea36") );
   gtk_widget_queue_draw (finestra);    
} 

extern "C" void stampa_locandina_evento( GtkButton *button,gpointer data )
{
   stampa=10;
  
   GtkWidget *finestra=GTK_WIDGET(gtk_builder_get_object(builder,"drawingarea36") );
   gtk_widget_queue_draw (finestra);    
} 

extern "C" void stampa_informazioni( GtkButton *button,gpointer data )
{
   stampa=11;
  
   GtkWidget *finestra=GTK_WIDGET(gtk_builder_get_object(builder,"drawingarea36") );
   gtk_widget_queue_draw (finestra);    
} 